home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / cug232 / number.st < prev    next >
Text File  |  1987-06-17  |  2KB  |  101 lines

  1. Class Number :Magnitude
  2. [
  3.     maxtype: aNumber
  4.         ^ <GeneralityTest self aNumber>
  5.             ifTrue:  [self]
  6.             ifFalse: [aNumber coerce: self ]
  7. |
  8.     = aNumber
  9.         ^ (self maxtype: aNumber) = (aNumber maxtype: self)
  10. |
  11.     < aNumber
  12.         ^ (self maxtype: aNumber) < (aNumber maxtype: self)
  13. |
  14.     > aNumber
  15.         ^ (self maxtype: aNumber) > (aNumber maxtype: self)
  16. |
  17.     + aNumber
  18.         ^ (self maxtype: aNumber) + (aNumber maxtype: self)
  19. |
  20.     - aNumber
  21.         ^ (self maxtype: aNumber) - (aNumber maxtype: self)
  22. |
  23.     * aNumber
  24.         ^ (self maxtype: aNumber) * (aNumber maxtype: self)
  25. |
  26.     / aNumber
  27.         ^ (self maxtype: aNumber) / (aNumber maxtype: self)
  28. |
  29.     ^ aNumber
  30.         ^ self asFloat ^ aNumber asFloat
  31. |
  32.     @ aNumber
  33.         ^ ( Point new x: self ) y: aNumber
  34. |
  35.     abs
  36.         ^ (self < 0)
  37.             ifTrue:  [ 0 - self ]
  38.             ifFalse: [ self ]
  39. |
  40.     exp
  41.         ^ self asFloat exp
  42. |
  43.     gamma
  44.         ^ self asFloat gamma
  45. |
  46.     ln
  47.         ^ self asFloat ln
  48. |
  49.     log: aNumber
  50.         ^ self ln / aNumber ln
  51. |
  52.     negated
  53.         ^ 0 - self
  54. |
  55.     negative
  56.         ^ self < 0
  57. |
  58.     pi
  59.         ^ self * 3.1415926
  60. |
  61.     positive
  62.         ^ self >= 0
  63. |
  64.     radians
  65.         ^ Radian new: self asFloat
  66. |
  67.     raisedTo: aNumber
  68.         ^ self asFloat ^ aNumber asFloat
  69. |
  70.     reciprocal
  71.         ^ 1.00 / self
  72. |
  73.     roundTo: aNumber
  74.         ^ (self / aNumber) rounded * aNumber
  75. |
  76.     sign
  77.         ^ (self < 0)
  78.             ifTrue: [ -1 ]
  79.             ifFalse: [ (self > 0)
  80.                     ifTrue: [ 1 ]
  81.                     ifFalse: [ 0 ] ]
  82. |
  83.     sqrt
  84.         ^ self asFloat sqrt
  85. |
  86.     squared
  87.         ^ self * self
  88. |
  89.     strictlyPositive
  90.         ^ self > 0
  91. |
  92.     to: highValue
  93.         ^ Interval new ; from: self to: highValue by: 1
  94. |
  95.     to: highValue by: stepSize
  96.         ^ Interval new ; from: self to: highValue by: stepSize
  97. |
  98.     truncateTo: aNumber
  99.         ^ (self / aNumber) truncated * aNumber
  100. ]
  101.